This invention relates generally to printers, and more particularly to apparatus for converting a printer personality, from that of a printer operating in accordance with a particular standard for a particular font resident therein to that of a printer operating in accordance with a different standard for a different font which appears to be resident therein, thus enabling the printer to print different character fonts as may be prevalent in different countries in accordance with different encoding standards used in the different countries. Still more specifically, the invention relates to apparatus for converting a single printer for a set of Asian characters, operating in accordance with a specific national standard, to operate in accordance with a different national standard for printing the same set or a different set of Asian characters in accordance with a different national standard.
Various standards are used throughout the world to encode a particular set of characters for printing by a printer having that set of characters as part of a font resident therein. Such standards typically encode characters in a 2-byte code, and thus have a capacity for identifying approximately 64,000 characters. For example, English characters are encoded using the ASCII standard in the US. Although encoding of the English language may be fairly standardized, however, such uniformity does not exist throughout the world with respect to the various character sets used for communication. More specifically, there does not exist uniformity in encoding of character sets in various Asian countries, whether or not using the same set of characters.
The character encodings used in countries with large sets of characters (e.g. Japan, China) have been evolving over many generations of computer technologies. The result is a large number of differing standards even within some countries. Current international efforts on creating unified encoding will result in another standard known as UNICODE. The new printers used in those countries typically operate in graphics mode in order to avoid implementation of the font and the implementation of a specific character encoding. However, operation in graphics mode results in a slower printing of textual documents. In that regard, it should be noted that in several Asian countries, similar character sets are used (although a number of differences exist between the sets), but that different encoding standards are used to represent these character sets. For example, Kanji characters are used in the Chinese language, but differences exist between the characters used in Taiwan and those used in mainland China, with still other differences distinguishing Japanese Kanji characters from those of Taiwan and mainland China.
While some of the characters are fairly identical, if more elaborate character concepts are considered, then the three cultures diverge in the manner in which the characters are drawn or represented. Thus, traditional Chinese characters are used in Taiwan and a simplified form of the characters is used in mainland China. Additionally, acceptable mainland Chinese text cannot be written with the Japanese character set, and so on. Such writings may be intelligible, or guessable, but are not acceptable from the standpoint of proper usage.
A number of reasons explain such diversity. More specifically, as different Asian economies have individually entered the computer age, the national character sets used in those countries were individually, and differently, encoded. In Japan, for example, inasmuch as individual companies have defined individual coding schemes while Japanese industry has defined a number of standards for encoding (known as JISxx, the Japanese Industry Standard) where xx designates a particular standard number, a number of different encoding protocols are used for the different sets of Japanese characters.
A Chinese National Standard (CNSxx) is used in Taiwan for encoding Chinese characters, where xx designates a particular standard number, with an added complexity arising from the fact that different standards represent the characters in the computer file system and in the printers.
In Korea, there are used particular Korean Standards (KSxx) to represent characters for printing by a printer, where xx designates a particular standard number.
In mainland China, a more recent entrant to the computer driven environment, there is used a somewhat simpler GuoBiao standard, which incorporates various beneficial features from previously developed standards of Japan and Taiwan.
For applications where high speed text output is necessary and graphics are needed only occasionally, the printer with embedded, fixed or variable size font will have a speed advantage where, for example, 2 printers print at the same speed and communicate at the same speed and both print characters composed of 24 pixels by 24 pixels (typical resolution required to print Asian characters). In order to print 1000 characters, the printer with embedded font will receive 2000 bytes plus some control codes. In comparison, the graphics printer will receive 72 bytes per character .times.1000 characters for a total of 72,000 plus control codes. Assuming the same communication speed, the text for the printer with embedded font will be transmitted about 36 times faster.
Character encoding Standards used in Asia:
JIS X 0208-1990 (Japan) Defines 94 rows of 94 characters; total of 6,879 Characters.
S-JIS (Japan) Same set of characters as in JIS but with a modified layout for easier computer storage and processing.
BIG5 (Taiwan and Hong Kong) Defines 94 rows of 157 characters; total of 13,523 characters.
CNS 11643-1986 (Taiwan and Hong Kong) similar to BIG5 but used by commercial printers.
GB 2312-80 (The People's Republic of China) Defines 94 rows of 94 characters; total of 6,763 characters.
Each of these encodings uses 2 bytes to represent a particular character. However, each of the encodings differs in definition of the valid values of the first and second byte of the encoding.
For example:
______________________________________ Valid Range for the 1 Valid Range for the 2 Encoding Standard Byte (in Hexadecimal) Byte (in Hexadecimal) ______________________________________ JIS X 0208-1990 21-7E 21-7E S-JIS 40-7E and 80-FC BIG5 40-7E and A1-FE GB 2312-80 21-7E 21-7E ______________________________________
In order to efficiently store the character descriptions (either bitmaps or other scaleable representation) only the defined characters need to be stored in the printer memory. When characters are laid-out sequentially in memory it is necessary to know what how to translate the received code into the location of the character's description. For example, code 2121 refers to the first character in JIS X 0208-1990 and in GB 2312-80, but the first character is referred to as 8140 in SJIS and A140 in BIG5. The 95 character is referred to as 2221 in JIS X 0208-1990 and in GB 2312-80, but it is referred to as 819F in SJIS and as AlCO in BIG5.
It is important to note that, in general, the n.sup.th character in one encoding does not necessarily correspond the same character in another encoding. The characters are arranged in different orders in different countries, but some section may correspond. For example, Latin or Greek letters may be encoded in the same locations.
The Font Encoding information may contain:
(a) Character mapping (represented as a table of valid ranges, or as a subroutine that converts character code to the sequential number of the character); PA1 (b) The Font defining the bitmaps of characters or other graphical representation of the character; and PA1 (c) Control Codes to operate the printer in the particular country. For example, the commands that switch the printer in and out of 2 byte mode operation may be different in different countries. Commands for changing from internal font to external font.
With this implementation, it is possible with a front panel switch or with a control command to change the printer from a Japanese to Traditional Chinese Printer while maintaining high speed capability.
Different encoding standards are thus used in the various Asian countries to encode the same characters, or various modifications thereof. However, though the characters may be the same or similar, the use of different codes precludes a document prepared in one country, e.g., mainland China, from being printed on a printer of another country (e.g., a Taiwanese printer) and precludes a printer manufactured to operate in one country from being able to operate in another country.
For example, a Japanese printer operating in accordance with JIS expects a character code of two bytes, with only 7 bits in each being significant. Thus, if information is sent to the printer which uses all 8 bits to represent a character, the Japanese printer may not print at all, or may print some incorrect characters. A printer in mainland China, on the other hand, expects all 8 bits to be provided, and expects the 8th bit to be set to 1. If that bit is not set to 1, a printer prepared for operation in mainland China will either print an unintended character or not print at all.
Additionally, because different character encodings are used in JIS, CNS and GuoBiao--these 3 encoding schemes map the characters in totally different locations from each other --e.g., location 2000, 3500, or 1000 may be used by the three encoding schemes to encode the same character. The following provides an explanation of underlying concepts of such character encoding schemes.
Character encoding as described herein provides significant advantages in storage space. For example, if representing a character as a graphic, using an array of 24.times.24 (i.e., 576) pixels, one would need 72 8-bit bytes (576 bits) to describe all 576 pixels of the character. However, the known encoding techniques use 2 bytes--from 0000 through FFFF (in hexadecimal) which can represent 65,000 locations.
In Japan about 7,500 characters are used, requiring only a subset of the total space addressable by 2 bytes. The Japanese standard effectively defines the characters contiguously from character 0 to character 7500. However, the 2-byte codes by which the characters are recalled or addressed are not totally contiguous, starting at 2020H and proceeding from there, with gaps. Certain decoding algorithms are thus needed to know that, if receiving a Japanese coding, character 4031 in the sequentially laid out memory is in location 1500.
The specific encoding schemes are thus significant since the way the characters are laid out differs from the standard of one country to that of another country. That is, the coding scheme effectively provides a translation from a code to the actual serial location, or sequence number, and thus to the location where the information for that character is stored.
Conversion of characters from one Asian character set to another is known in the prior art, although such conversions are made in the conversion device operating under the prevailing encoding standard.
For example, it is known to convert Japanese phonetic Kana characters (e.g., Hiragana and Katakana) to Kanji (hieroglyphic) characters. U. S. Pat. No. 5,321,801 discloses a document processor system which incorporates conversion of inputted Kana characters to Kanji. The inputted characters are displayed in their input form and, after conversion, are thereafter displayed in their converted form.
The use of a standard interface between such a conversion program and a body of a text displaying application program is described in U. S. Pat. No. 5,285,387, which shows the conversion program itself separately from, and interfacing between, an input keyboard and the user interface in a multi-window, multi-tasking environment. As shown therein, prior art programs provided a different user interface for each language, such as Japanese and Korean, within the application program. As further described, it is known for the applications program and the conversion program to operate in different windows, and to pass information (including font information) to one another.
Generation of ideographic Chinese characters and selective printing thereof by a word processor is disclosed in U. S. Pat. No. 5,378,068.
U. S. Pat. No. 5,116,296 identifies a phonetic system for (Pin Yin) encoding Chinese characters, and notes the existence of different phonetic symbols for denoting these characters in Taiwan and in other Asian countries. To encode the Chinese characters, the disclosed system categorizes the same in terms of fundamental strokes or components.
None of the above references, however, considers the possibility of printing the same set of characters in accordance with different encoding standards as may prevail in different countries, or of printing different sets of characters in accordance with such different encoding standards.
Thus, in Asian countries, printers deal with thousands of ideographic symbols. For example, more than 7,000 characters are supported by Japanese printers, and similarly in mainland China. However, in the traditional Chinese language, as used in Taiwan and Hong Kong for example, more than 13,000 characters are required to be supported by a printer. Accordingly, a character representing the concept of the sun, for example, has a different 2-byte standard representation in China, in Japan, and in Taiwan. For example, in accordance with one standard the sun character may be represented by the code 1000H, while in another the code may be 2041H--so that the same character may have different code representations, which must be recognized by printers operating in the separate countries to print the same character.
Further, while some simpler characters which convey basic meaning, e.g. sun, may look very much the same in one country and another, other characters may have been dropped from one country to another, or may have calligraphy which is different in a way that is significant to a native reader and may preclude or hinder proper reading when improperly used. Thus, the prior art has failed to address issues relating both to encoding characters and to the look and feel of the characters as well.
Finally, while font-changing cards may be available for some printers, such cards do not change the "personality" of the printer. That is, when a font-changing card, or module, is connected to a printer, the printer continues to respond to the same coding scheme, but produces differently designed (differently shaped) characters, or even different characters, for codes presented in accordance with that same coding scheme. In fact, the modules do not change the encoding--so that a single byte code of 41H, calling for an upper case A, may result in a different looking A, or may result in printing of a symbol if a mathematical symbol card is provided.
However, in case of US printers for example, the coding doesn't change regardless of font and continues to adhere to the ASCII standard. Similarly, in China, a printer with such a font-changing card continues to understand only the GuoBiao code.
That is, in the prior art font-changing cards it is assumed that, if a particular code is sent, there will be printed some symbol, which may differ from font to font. There is no provision, however, to assure that a printer having an internal software architecture allowing it to read the information from a card or from an internal font in accordance with one coding scheme, e.g., ASCII, would be able to print the same characters in response to information provided in accordance with another coding scheme, e.g., GuoBiao. That is, the printers in one country respond to differently formatted sets of two-byte codes than the printers of another country.
From the foregoing, it is clear that prior art printers are dedicated to one particular market--or that (in the alternative) such prior art printers may be forced to deal with characters as graphics, and thus to require an inordinate amount of time to print the same.
The prior art has thus failed to provide a printer capable of operating in a number of countries under a number of different standards for printing the same (or slightly modified) set of characters under each of a plurality of sets of available encoding standards therefor. More specifically, the prior art has failed to provide a plurality of character encoding sets which are effectively embedded in a single printer to permit a single printer to have, at the same time, an understanding of encoding standards of different countries so as to be able to mix and match protocols which the printer understands.
There is thus a need in the prior art for a printer having a built in capability to accept and understand different coding schemes, to produce a first character within one character set in response to a particular character code when using a first coding scheme (e.g., in mainland China) and, when given a second coding scheme, to produce a second character within a second character set in response to the same particular character code, where the second character may be different from the first character, as set forth by the second coding scheme, such as production of one character in accordance with a first code standard of mainland China when a particular code is received and production of a second character in accordance with a second code standard of Taiwan when the same code is received and the printer is provided with information identifying operation to be in accordance with the second code standard. Thus, it is an object of this disclosure to provide an approach by which the encoding information is stored together with the font and which can be stored inside the memory of the printer as well as on external memory modules.